home *** CD-ROM | disk | FTP | other *** search
Text File | 1998-08-17 | 16.4 KB | 565 lines | [TEXT/MPS ] |
- ;
- ; File: QD3DViewer.a
- ;
- ; Contains: MacOS Viewer Controller Interface File.
- ;
- ; Version: Technology: Quickdraw 3D 1.5.4
- ; Release: Universal Interfaces 3.2
- ;
- ; Copyright: © 1995-1998 by Apple Computer, Inc., all rights reserved.
- ;
- ; Bugs?: For bug reports, consult the following page on
- ; the World Wide Web:
- ;
- ; http://developer.apple.com/bugreporter/
- ;
- ;
- IF &TYPE('__QD3DVIEWER__') = 'UNDEFINED' THEN
- __QD3DVIEWER__ SET 1
-
- IF &TYPE('__QD3D__') = 'UNDEFINED' THEN
- include 'QD3D.a'
- ENDIF
- IF &TYPE('__QD3DGROUP__') = 'UNDEFINED' THEN
- include 'QD3DGroup.a'
- ENDIF
-
- IF TARGET_OS_MAC THEN
- IF &TYPE('__EVENTS__') = 'UNDEFINED' THEN
- include 'Events.a'
- ENDIF
- IF &TYPE('__MACTYPES__') = 'UNDEFINED' THEN
- include 'MacTypes.a'
- ENDIF
- IF &TYPE('__QUICKDRAW__') = 'UNDEFINED' THEN
- include 'Quickdraw.a'
- ENDIF
- ENDIF ; TARGET_OS_MAC
- IF TARGET_OS_MAC THEN
- ; typedef void * TQ3ViewerObject
-
-
- kQ3ViewerShowBadge EQU $01
- kQ3ViewerActive EQU $02
- kQ3ViewerControllerVisible EQU $04
- kQ3ViewerDrawFrame EQU $08
- kQ3ViewerDraggingOff EQU $10
- kQ3ViewerButtonCamera EQU $20
- kQ3ViewerButtonTruck EQU $40
- kQ3ViewerButtonOrbit EQU $80
- kQ3ViewerButtonZoom EQU $0100
- kQ3ViewerButtonDolly EQU $0200
- kQ3ViewerButtonReset EQU $0400
- kQ3ViewerOutputTextMode EQU $0800
- kQ3ViewerDragMode EQU $1000
- kQ3ViewerDrawGrowBox EQU $2000
- kQ3ViewerDrawDragBorder EQU $4000
- kQ3ViewerDraggingInOff EQU $8000
- kQ3ViewerDraggingOutOff EQU $00010000
- kQ3ViewerDefault EQU $80000000
-
- kQ3ViewerEmpty EQU 0
- kQ3ViewerHasModel EQU $01
- kQ3ViewerHasUndo EQU $02
-
- ; typedef long TQ3ViewerCameraView
- kQ3ViewerCameraRestore EQU 0
- kQ3ViewerCameraFit EQU 1
- kQ3ViewerCameraFront EQU 2
- kQ3ViewerCameraBack EQU 3
- kQ3ViewerCameraLeft EQU 4
- kQ3ViewerCameraRight EQU 5
- kQ3ViewerCameraTop EQU 6
- kQ3ViewerCameraBottom EQU 7
-
- ; ******************************************************************************
- ; ** **
- ; ** Return viewer version number **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern OSErr Q3ViewerGetVersion(unsigned long *majorRevision, unsigned long *minorRevision)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerGetVersion
- ENDIF
-
-
-
- ; ******************************************************************************
- ; ** **
- ; ** Return viewer release version number **
- ; ** (in 'vers' format - e.g. 0x01518000 ==> 1.5.1 release) **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern OSErr Q3ViewerGetReleaseVersion(unsigned long *releaseRevision)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerGetReleaseVersion
- ENDIF
-
-
- ; ******************************************************************************
- ; ** **
- ; ** Creation and destruction **
- ; ** Note that this is not a QuickDraw 3D object **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern TQ3ViewerObject Q3ViewerNew(CGrafPtr port, Rect *rect, unsigned long flags)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerNew
- ENDIF
-
- ;
- ; extern OSErr Q3ViewerDispose(TQ3ViewerObject theViewer)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerDispose
- ENDIF
-
- ; ******************************************************************************
- ; ** **
- ; ** Functions to attach data to a viewer **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern OSErr Q3ViewerUseFile(TQ3ViewerObject theViewer, long refNum)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerUseFile
- ENDIF
-
- ;
- ; extern OSErr Q3ViewerUseData(TQ3ViewerObject theViewer, void *data, long size)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerUseData
- ENDIF
-
- ; ******************************************************************************
- ; ** **
- ; ** Functions to write data out from the Viewer **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern OSErr Q3ViewerWriteFile(TQ3ViewerObject theViewer, long refNum)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerWriteFile
- ENDIF
-
- ;
- ; extern unsigned long Q3ViewerWriteData(TQ3ViewerObject theViewer, Handle data)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerWriteData
- ENDIF
-
- ; ******************************************************************************
- ; ** **
- ; ** Use this function to force the Viewer to re-draw **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern OSErr Q3ViewerDraw(TQ3ViewerObject theViewer)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerDraw
- ENDIF
-
- ;
- ; extern OSErr Q3ViewerDrawContent(TQ3ViewerObject theViewer)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerDrawContent
- ENDIF
-
- ;
- ; extern OSErr Q3ViewerDrawControlStrip(TQ3ViewerObject theViewer)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerDrawControlStrip
- ENDIF
-
- ; ******************************************************************************
- ; ** **
- ; ** Function used by the Viewer to filter and handle events **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern Boolean Q3ViewerEvent(TQ3ViewerObject theViewer, EventRecord *evt)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerEvent
- ENDIF
-
- ; ******************************************************************************
- ; ** **
- ; ** This function returns a PICT of the contents of the **
- ; ** Viewer's window. The application should dispose the PICT. **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern PicHandle Q3ViewerGetPict(TQ3ViewerObject theViewer)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerGetPict
- ENDIF
-
- ; ******************************************************************************
- ; ** **
- ; ** Calls for dealing with Buttons **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern OSErr Q3ViewerGetButtonRect(TQ3ViewerObject theViewer, unsigned long button, Rect *rect)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerGetButtonRect
- ENDIF
-
- ;
- ; extern unsigned long Q3ViewerGetCurrentButton(TQ3ViewerObject theViewer)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerGetCurrentButton
- ENDIF
-
- ;
- ; extern OSErr Q3ViewerSetCurrentButton(TQ3ViewerObject theViewer, unsigned long button)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerSetCurrentButton
- ENDIF
-
- ; ******************************************************************************
- ; ** **
- ; ** Functions to set/get the group to be displayed by the Viewer. **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern OSErr Q3ViewerUseGroup(TQ3ViewerObject theViewer, TQ3GroupObject group)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerUseGroup
- ENDIF
-
- ;
- ; extern TQ3GroupObject Q3ViewerGetGroup(TQ3ViewerObject theViewer)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerGetGroup
- ENDIF
-
- ; ******************************************************************************
- ; ** **
- ; ** Functions to set/get the color used to clear the window **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern OSErr Q3ViewerSetBackgroundColor(TQ3ViewerObject theViewer, TQ3ColorARGB *color)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerSetBackgroundColor
- ENDIF
-
- ;
- ; extern OSErr Q3ViewerGetBackgroundColor(TQ3ViewerObject theViewer, TQ3ColorARGB *color)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerGetBackgroundColor
- ENDIF
-
- ; ******************************************************************************
- ; ** **
- ; ** Getting/Setting a Viewer's View object. Disposal is needed. **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern TQ3ViewObject Q3ViewerGetView(TQ3ViewerObject theViewer)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerGetView
- ENDIF
-
- ;
- ; extern OSErr Q3ViewerRestoreView(TQ3ViewerObject theViewer)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerRestoreView
- ENDIF
-
- ; ******************************************************************************
- ; ** **
- ; ** Calls for setting/getting viewer flags **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern OSErr Q3ViewerSetFlags(TQ3ViewerObject theViewer, unsigned long flags)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerSetFlags
- ENDIF
-
- ;
- ; extern unsigned long Q3ViewerGetFlags(TQ3ViewerObject theViewer)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerGetFlags
- ENDIF
-
- ; ******************************************************************************
- ; ** **
- ; ** Calls related to bounds/dimensions. Bounds is the size of **
- ; ** the window. Dimensions can either be the Rect from the ViewHints **
- ; ** or the current dimensions of the window (if you do a Set). **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern OSErr Q3ViewerSetBounds(TQ3ViewerObject theViewer, Rect *bounds)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerSetBounds
- ENDIF
-
- ;
- ; extern OSErr Q3ViewerGetBounds(TQ3ViewerObject theViewer, Rect *bounds)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerGetBounds
- ENDIF
-
- ;
- ; extern OSErr Q3ViewerSetDimension(TQ3ViewerObject theViewer, unsigned long width, unsigned long height)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerSetDimension
- ENDIF
-
- ;
- ; extern OSErr Q3ViewerGetDimension(TQ3ViewerObject theViewer, unsigned long *width, unsigned long *height)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerGetDimension
- ENDIF
-
- ;
- ; extern OSErr Q3ViewerGetMinimumDimension(TQ3ViewerObject theViewer, unsigned long *width, unsigned long *height)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerGetMinimumDimension
- ENDIF
-
- ; ******************************************************************************
- ; ** **
- ; ** Port related calls **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern OSErr Q3ViewerSetPort(TQ3ViewerObject theViewer, CGrafPtr port)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerSetPort
- ENDIF
-
- ;
- ; extern CGrafPtr Q3ViewerGetPort(TQ3ViewerObject theViewer)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerGetPort
- ENDIF
-
- ; ******************************************************************************
- ; ** **
- ; ** Adjust Cursor should be called from idle loop to allow the Viewer **
- ; ** to change the cursor according to the cursor position/object under **
- ; ** the cursor. **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern Boolean Q3ViewerAdjustCursor(TQ3ViewerObject theViewer, Point *pt)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerAdjustCursor
- ENDIF
-
- ;
- ; extern OSErr Q3ViewerCursorChanged(TQ3ViewerObject theViewer)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerCursorChanged
- ENDIF
-
-
- ; ******************************************************************************
- ; ** **
- ; ** Returns the state of the viewer. See the constant defined at the **
- ; ** top of this file. **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern unsigned long Q3ViewerGetState(TQ3ViewerObject theViewer)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerGetState
- ENDIF
-
- ; ******************************************************************************
- ; ** **
- ; ** Clipboard utilities **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern OSErr Q3ViewerClear(TQ3ViewerObject theViewer)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerClear
- ENDIF
-
- ;
- ; extern OSErr Q3ViewerCut(TQ3ViewerObject theViewer)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerCut
- ENDIF
-
- ;
- ; extern OSErr Q3ViewerCopy(TQ3ViewerObject theViewer)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerCopy
- ENDIF
-
- ;
- ; extern OSErr Q3ViewerPaste(TQ3ViewerObject theViewer)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerPaste
- ENDIF
-
-
- ; ******************************************************************************
- ; ** **
- ; ** New Event Model **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern Boolean Q3ViewerMouseDown(TQ3ViewerObject theViewer, long x, long y)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerMouseDown
- ENDIF
-
- ;
- ; extern Boolean Q3ViewerContinueTracking(TQ3ViewerObject theViewer, long x, long y)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerContinueTracking
- ENDIF
-
- ;
- ; extern Boolean Q3ViewerMouseUp(TQ3ViewerObject theViewer, long x, long y)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerMouseUp
- ENDIF
-
- ;
- ; extern Boolean Q3ViewerHandleKeyEvent(TQ3ViewerObject theViewer, EventRecord *evt)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerHandleKeyEvent
- ENDIF
-
-
- ; ******************************************************************************
- ; ** **
- ; ** Drawing CallBack **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern OSErr Q3ViewerSetDrawingCallbackMethod(TQ3ViewerObject theViewer, TQ3ViewerDrawingCallbackMethod callbackMethod, const void *data)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerSetDrawingCallbackMethod
- ENDIF
-
-
- ; ******************************************************************************
- ; ** **
- ; ** Undo **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern OSErr Q3ViewerUndo(TQ3ViewerObject theViewer)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerUndo
- ENDIF
-
- ;
- ; extern Boolean Q3ViewerGetUndoString(TQ3ViewerObject theViewer, char *str, unsigned long *cnt)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerGetUndoString
- ENDIF
-
-
- ; ******************************************************************************
- ; ** **
- ; ** Camera Support **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern OSErr Q3ViewerGetCameraCount(TQ3ViewerObject theViewer, unsigned long *cnt)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerGetCameraCount
- ENDIF
-
- ;
- ; extern OSErr Q3ViewerSetCameraByNumber(TQ3ViewerObject theViewer, unsigned long cameraNo)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerSetCameraByNumber
- ENDIF
-
- ;
- ; extern OSErr Q3ViewerSetCameraByView(TQ3ViewerObject theViewer, TQ3ViewerCameraView viewType)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3ViewerSetCameraByView
- ENDIF
-
- ENDIF ; TARGET_OS_MAC
-
-
-
- ENDIF ; __QD3DVIEWER__
-
-